class Solution
{
public:
    int minAnagramLength(string s)
    {
        // 由于 s 是由若干长度为 k 的字符串拼接而成，所以 k 一定是 n 的因子
        // 所以我们可以暴力枚举 n 的因子 k
        int n = s.size();
        for(int k = 1; k <= n / 2; k++)
        {
            if(n % k != 0)  // 不是因子
                continue;
            
            array<int, 26> cnt0{};
            for(int j = 0; j < k; j++)
                cnt0[s[j] - 'a']++;     // 先把前 k 个放入一个哈希表
            
            bool ok = true;
            for(int i = k; i < n; i += k)
            {
                array<int, 26> cnt1{};
                for(int j = i; j < i + k; j++)
                    cnt1[s[j] - 'a']++;
                
                if(cnt0 != cnt1)
                {
                    ok = false;
                    break;
                }
            }

            if(ok)
                return k;
        }
        return n;
    }
};